import pandas as pd
import re


# 老专题模板处理
type_a = {
    '试卷快照ID': str,
    '原卷ID': str
}

type_b = {
    'content': str,
    'id': str
}

# 加载文件
df1 = pd.read_excel('D:\\project_file\\老卷下线\\新老专题模板使用试卷汇总.xlsx', dtype=type_a)
df2 = pd.read_csv('D:\\project_file\\老卷下线\\老专题模板\\老专题模板.csv', dtype=type_b)

# 定义函数来检查每个行
def check_row(row):
    snapshot_id = str(row['试卷快照ID'])  # 确保是字符串
    # 使用正则表达式匹配paperId=[试卷快照ID]，允许前后有其他内容
    pattern = rf'paperId={re.escape(snapshot_id)}'
    # 查找文件2中content包含pattern的行
    matching = df2[df2['content'].str.contains(pattern, na=False, regex=True)]
    if not matching.empty:
        use = '是'
        # 假设文件2有'专题id'列，收集所有唯一匹配的专题id，用逗号连接
        ids = ','.join(matching['id'].astype(str).unique())
    else:
        use = '否'
        ids = ''
    return pd.Series({'老专题使用': use, '老专题id': ids})

# 应用函数到df1，添加新列
df1 = df1.join(df1.apply(check_row, axis=1))

# 保存修改后的文件1
df1.to_excel('D:\\project_file\\老卷下线\\老专题模板使用的老卷梳理.xlsx', index=False)